package com.music.util;

import android.content.Context;
import android.graphics.Bitmap;
import android.text.TextUtils;
import android.widget.ImageView;

import com.anmusic.application.R;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.assist.ImageScaleType;
import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer;
import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;

public class UniversalImageLoader {

	private static UniversalImageLoader mImageLoader;

	public static UniversalImageLoader getImageLoader(Context context) {
		if (mImageLoader == null) {
			mImageLoader = new UniversalImageLoader();
		}
		return mImageLoader;
	}

	@SuppressWarnings("deprecation")
	public void showImage(ImageView imageView, String strImgUrl,
			ImageScaleType scaleType, int roundedSize, int disTime) {
		if (TextUtils.isEmpty(strImgUrl) || !strImgUrl.contains("http")) {
			return;
		}
		ImageLoader imageLoader = ImageLoader.getInstance();
		DisplayImageOptions options;
		options = new DisplayImageOptions.Builder()
				.showImageOnLoading(R.drawable.ic_launcher) // 设置图片在下载期间显示的图片
				.showImageForEmptyUri(R.drawable.ic_launcher)// 设置图片Uri为空或是错误的时候显示的图片
				.showImageOnFail(R.drawable.ic_launcher) // 设置图片加载/解码过程中错误时候显示的图片
				.cacheInMemory(true)// 设置下载的图片是否缓存在内存中
				.cacheOnDisc(true)// 设置下载的图片是否缓存在SD卡中
				.considerExifParams(true) // 是否考虑JPEG图像EXIF参数（旋转，翻转）
				.imageScaleType(scaleType)// 设置图片以如何的编码方式显示
				.bitmapConfig(Bitmap.Config.RGB_565)// 设置图片的解码类型//
				// .delayBeforeLoading(int delayInMillis)//int
				// delayInMillis为你设置的下载前的延迟时间
				// 设置图片加入缓存前，对bitmap进行设置
				// .preProcessor(BitmapProcessor preProcessor)
				.resetViewBeforeLoading(true)// 设置图片在下载前是否重置，复位
				.displayer(new RoundedBitmapDisplayer(roundedSize))// 是否设置为圆角，弧度为多少
				.displayer(new FadeInBitmapDisplayer(disTime))// 是否图片加载好后渐入的动画时间
				.build();// 构建完成
		imageLoader.displayImage(strImgUrl, imageView, options);
	}

	public void showImage(ImageView imageView, String strImgUrl,
			ImageScaleType scaleType) {
		if (TextUtils.isEmpty(strImgUrl) || !strImgUrl.contains("http")) {
			return;
		}
		ImageLoader imageLoader = ImageLoader.getInstance();
		DisplayImageOptions options;
		options = new DisplayImageOptions.Builder()
				.showImageOnLoading(R.drawable.ic_launcher) // 设置图片在下载期间显示的图片
				.showImageForEmptyUri(R.drawable.ic_launcher)// 设置图片Uri为空或是错误的时候显示的图片
				.showImageOnFail(R.drawable.ic_launcher) // 设置图片加载/解码过程中错误时候显示的图片
				.cacheInMemory(true)// 设置下载的图片是否缓存在内存中
				.imageScaleType(scaleType).considerExifParams(true) // 是否考虑JPEG图像EXIF参数（旋转，翻转）
				.bitmapConfig(Bitmap.Config.RGB_565)// 设置图片的解码类型//
				// .delayBeforeLoading(int delayInMillis)//int
				// delayInMillis为你设置的下载前的延迟时间
				// 设置图片加入缓存前，对bitmap进行设置
				// .preProcessor(BitmapProcessor preProcessor)
				.resetViewBeforeLoading(true)// 设置图片在下载前是否重置，复位
				.build();// 构建完成
		imageLoader.displayImage(strImgUrl, imageView, options);
	}

	public void showImage(ImageView imageView, String strImgUrl) {
		if (TextUtils.isEmpty(strImgUrl) || !strImgUrl.contains("http")) {
			return;
		}
		ImageLoader imageLoader = ImageLoader.getInstance();
		DisplayImageOptions options;
		options = new DisplayImageOptions.Builder()
				.showImageOnLoading(R.drawable.ic_launcher) // 设置图片在下载期间显示的图片
				.showImageForEmptyUri(R.drawable.ic_launcher)// 设置图片Uri为空或是错误的时候显示的图片
				.showImageOnFail(R.drawable.ic_launcher) // 设置图片加载/解码过程中错误时候显示的图片
				.cacheInMemory(true)// 设置下载的图片是否缓存在内存中
				.considerExifParams(true) // 是否考虑JPEG图像EXIF参数（旋转，翻转）
				.bitmapConfig(Bitmap.Config.RGB_565)// 设置图片的解码类型//
				// .delayBeforeLoading(int delayInMillis)//int
				// delayInMillis为你设置的下载前的延迟时间
				// 设置图片加入缓存前，对bitmap进行设置
				// .preProcessor(BitmapProcessor preProcessor)
				.resetViewBeforeLoading(true)// 设置图片在下载前是否重置，复位
				.build();// 构建完成
		imageLoader.displayImage(strImgUrl, imageView, options);
	}
}
